#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>

//将标准输出1关闭，再将1替换为其他文件（我们定义的）。
//这样就能够完成输出的时候将输出内容输出到定义的文件中
//这种操作称为输出重定向
int main()
{
  int fd = open("log.txt", O_WRONLY | O_CREAT | O_TRUNC, 0666);
  if(fd < 0)
  {
    perror("open error");
    return -1;
  }
  dup2(fd,1);
  printf("open fd: %d\n",fd);//向stdout输出，由于关闭了标准输出文件，无法输出
  fprintf(stdout, "open fd: %d\n",fd);//向stdout输出，
  fflush(stdout);//重新刷新
  close(fd);
  return 0;
}
